গুয়াভা (Guava) লাইব্রেরি Guava Math এর মাধ্যমে আপনি সহজেই কিছু সাধারণ গণনার কাজ করতে পারেন, যেমন পরিসংখ্যান (statistics), ম্যাথমেটিক্যাল ক্যালকুলেশন, রাউন্ডিং, এবং অন্যান্য মেথড। গুয়াভা ম্যাথ লাইব্রেরি খুবই সহায়ক যখন আপনাকে বৃহৎ ডেটাসেট বা কমপ্লেক্স গণনা এর জন্য কিছু ম্যাথমেটিক্যাল অপারেশন করতে হয়।
গুয়াভা Ints, Longs, Doubles, Math সহ আরও বেশ কিছু মেথড প্রদান করে, যা Integer, Long, Double টাইপের সংখ্যার সাথে কাজ করার জন্য প্রয়োজনীয়।
Guava Math এর ধারণা
Guava Math লাইব্রেরির মেথডগুলি জাভা ডেভেলপারদের ম্যাথমেটিক্যাল অপারেশনগুলি সহজ এবং দ্রুতভাবে সম্পন্ন করার সুযোগ দেয়। এই লাইব্রেরি মূলত নিচের কাজগুলোর জন্য ব্যবহৃত হয়:
- অঙ্কের কাজের গতি বাড়ানো
- সংখ্যা বা ডেটা সেটের গুণগত মান যাচাই করা
- ম্যাথমেটিক্যাল ফলাফল তৈরি করতে সহায়ক ফাংশন সরবরাহ করা
- অতিরিক্ত লাইব্রেরি বা কমপ্লেক্স ক্যালকুলেশন ছাড়াই সহজ গণনা করা
Guava Math এর মেথড
গুয়াভা ম্যাথ লাইব্রেরি কিছু গুরুত্বপূর্ণ ফাংশন সরবরাহ করে, যেগুলি নিচে আলোচনা করা হলো:
1. Ints ক্লাস
Ints ক্লাসটি Integer টাইপের সংখ্যা নিয়ে কাজ করে এবং বিভিন্ন গণনা এবং অপারেশন সরবরাহ করে। এর সাহায্যে আপনি সহজেই int টাইপের ভ্যালু নিয়ে কাজ করতে পারেন।
Ints.checkedCast()
এই মেথডটি একটি বড় সংখ্যাকে (যেমন long) ছোট টাইপে (যেমন int) কাস্ট করে এবং যদি এটি সম্ভব না হয় তবে একটি ClassCastException ছুড়ে দেয়।
import com.google.common.primitives.Ints;
public class GuavaMathExample {
public static void main(String[] args) {
long largeNumber = 5000L;
int smallNumber = Ints.checkedCast(largeNumber); // Checked casting
System.out.println(smallNumber); // Throws ClassCastException if overflow occurs
}
}
Ints.constrainToRange()
এই মেথডটি একটি মানকে একটি নির্দিষ্ট পরিসরের মধ্যে সীমাবদ্ধ করে। যদি মানটি পরিসরের বাইরে থাকে, তবে এটি পরিসরের ন্যূনতম বা সর্বোচ্চ মানের সাথে সেট করে।
import com.google.common.primitives.Ints;
public class GuavaMathExample {
public static void main(String[] args) {
int result = Ints.constrainToRange(150, 0, 100); // Constrain to range [0, 100]
System.out.println(result); // Output: 100
}
}
2. Doubles ক্লাস
Doubles ক্লাসটি Double টাইপের সংখ্যা নিয়ে কাজ করে এবং এতে কিছু গুরুত্বপূর্ণ গাণিতিক মেথড থাকে, যেমন রাউন্ডিং এবং ন্যূনতম বা সর্বাধিক মানের তুলনা।
Doubles.compare()
এই মেথডটি দুটি ডবল মান তুলনা করতে ব্যবহৃত হয়। এটি প্রথম মান যদি দ্বিতীয় মানের চেয়ে বড় হয় তবে ১, সমান হলে ০ এবং ছোট হলে -১ রিটার্ন করে।
import com.google.common.primitives.Doubles;
public class GuavaMathExample {
public static void main(String[] args) {
double result = Doubles.compare(3.14, 3.15); // Compare two doubles
System.out.println(result); // Output: -1 (because 3.14 < 3.15)
}
}
Doubles.isFinite()
এই মেথডটি চেক করে যে একটি ডবল মান ইনফিনিটি বা নাল (Not-a-Number, NaN) নয়।
import com.google.common.primitives.Doubles;
public class GuavaMathExample {
public static void main(String[] args) {
System.out.println(Doubles.isFinite(5.5)); // Output: true
System.out.println(Doubles.isFinite(Double.POSITIVE_INFINITY)); // Output: false
}
}
3. Longs ক্লাস
Longs ক্লাসটি Long টাইপের সংখ্যার সাথে কাজ করে এবং বিভিন্ন ম্যাথমেটিক্যাল অপারেশন সরবরাহ করে।
Longs.saturatedCast()
এই মেথডটি একটি বড় মানকে long টাইপে কাস্ট করে এবং যদি মানটি অতিরিক্ত বড় হয়, তবে এটি Long.MAX_VALUE বা Long.MIN_VALUE রিটার্ন করবে।
import com.google.common.primitives.Longs;
public class GuavaMathExample {
public static void main(String[] args) {
long largeNumber = Long.MAX_VALUE + 1;
long result = Longs.saturatedCast(largeNumber);
System.out.println(result); // Output: 9223372036854775807 (Long.MAX_VALUE)
}
}
Longs.checkedCast()
এটি Long থেকে int বা অন্যান্য ছোট টাইপে কাস্ট করতে ব্যবহৃত হয়, এবং যদি কোনো অস্বীকারযোগ্য কাস্টিং করা হয়, তবে এটি একটি ClassCastException ছুড়ে দেবে।
import com.google.common.primitives.Longs;
public class GuavaMathExample {
public static void main(String[] args) {
long largeNumber = 5000L;
int smallNumber = Longs.checkedCast(largeNumber);
System.out.println(smallNumber);
}
}
4. Math ক্লাস
Math ক্লাসটি সাধারণ গাণিতিক কাজের জন্য ব্যবহৃত হয়, যেমন সোজা গুণ, ভাগ, যোগ এবং গাণিতিক ফাংশন।
Math.isPowerOfTwo()
এই মেথডটি চেক করে যে একটি সংখ্যা দুটি শক্তি কিনা।
import com.google.common.math.IntMath;
public class GuavaMathExample {
public static void main(String[] args) {
System.out.println(IntMath.isPowerOfTwo(16)); // Output: true
System.out.println(IntMath.isPowerOfTwo(18)); // Output: false
}
}
Math.factorial()
এই মেথডটি একটি সংখ্যা থেকে তার ফ্যাক্টোরিয়াল গণনা করতে ব্যবহৃত হয়।
import com.google.common.math.IntMath;
public class GuavaMathExample {
public static void main(String[] args) {
System.out.println(IntMath.factorial(5)); // Output: 120
}
}
সারাংশ
গুয়াভা Math লাইব্রেরি Java ডেভেলপারদের জন্য একটি শক্তিশালী গাণিতিক সরঞ্জাম সরবরাহ করে, যা সংখ্যার ক্যালকুলেশন, পরিসীমা যাচাই, রাউন্ডিং, কাস্টিং এবং গাণিতিক ফাংশনগুলিকে সহজ করে তোলে। Ints, Doubles, Longs, এবং Math ক্লাসের সাহায্যে আপনি Integer, Long, Double টাইপের সংখ্যার সাথে বিভিন্ন ম্যাথমেটিক্যাল অপারেশন করতে পারেন। গুয়াভা Math লাইব্রেরি বিশেষ করে যখন বড় বা কমপ্লেক্স সংখ্যার সাথে কাজ করতে হয় তখন কার্যকরী।
Read more